import java.util.Arrays;
import java.util.Scanner;

public class Test2 {
    //定义一个长度为 5 的数组，用于存储学生的成绩，成绩从键盘输入分别存储到数组中；
    //(1)将所有的成绩倒叙打印输出
    //(2)计算学生的平均成绩
    //(3)键盘输入一个成绩 s，打印出成绩大于 s 的所有结果

    public static double[] Sc(){
        double[] array=new double[5];
        System.out.println("请输入5名学生的成绩：");
        Scanner scanner=new Scanner(System.in);
        for(int i=0;i<array.length;i++){
            array[i]=scanner.nextDouble();
        }
        return array;
    }
    public static double[] reverse(double[] array){
        int left=0;
        int right=array.length-1;
        while(left<right)
        {
            double tmp=array[right];
            array[right]=array[left];
            array[left]=tmp;
            left++;
            right--;
        }
        return array;
    }
    public static double average(double[] array){
        double sum=0.0;
        for (double x:array) {
            sum+=x;
        }
        sum/=array.length;
        return sum;
    }
    public static void Print(double[] array,double x){
        //先查找输入的成绩
        //使用二分查找的条件是数组有序
        Arrays.sort(array);
        int left=0,right= array.length-1;
        int flag=-1;
        int mid=(left+right)>>>1;//无符号右移一位相当于除2
        while(x>array[right]||x<array[left])
        {
            System.out.println("请输入正确的成绩！");
            Scanner scanner=new Scanner(System.in);
            x=scanner.nextDouble();
        }
        while(left<=right){
            if(array[mid]==x) {
                flag = mid;
                break;
            }
            else if(array[mid]>x)
                right=mid;
            else
                left=mid;
        }
        System.out.println("比此成绩高的有：");
        for(int i=flag+1;i<=array.length-1;i++)
            System.out.print(array[i]+" ");
    }
    public static void main(String[] args) {
        //创建数组
        double[] array=Sc();
        //将所有成绩倒叙打出
        System.out.println(Arrays.toString(reverse(array)));
        //输出平均值
        System.out.println("成绩平均值为："+average(array));
        //输出所有大于输入的分数的成绩
        System.out.println("请输入一个成绩：");
        Scanner scanner=new Scanner(System.in);
        double num=scanner.nextDouble();
        Print(array,num);
    }
}
